package powerup;

import java.awt.event.KeyEvent;
import javax.swing.JLabel;
import nivel.Casillero;
import nivel.Nivel;

/**
 * Clase que modela una Hongo Rojo
 * 
 * Ademas de tener un label y un casillero asociados, HongoRojo tambien tiene
 * una inteligencia artificial.
 * 
 * @author Agustin Orge (LU.85538)
 * @author Victoria Martinez de la Cruz (LU.87620)
 */
public class HongoRojo extends Dinamico {

	/**
	 * Constructor del Hongo Rojo
	 * 
	 * @param n
	 *            nivel con el cual HongoVerde esta en relacion
	 * @param ca
	 *            casillero actual
	 */
	public HongoRojo(Nivel n, Casillero ca) {
		super(n);
		casilleroActual = ca;
		label = new JLabel(nivel.getGrafica().getPanelEntidades().getIconos()
				.getHongoRojo());
		label.setSize(16, 16);
		label.setLocation(casilleroActual.getX(), casilleroActual.getY());
		control = nivel.getLogicaIA();
		movimiento = nivel.getMovimiento();
	}

	/**
	 * Mario agarra el Hongo Rojo. Si no tiene powerups, entonces pasa de ser
	 * Mario a ser SuperMario Se le modifica el puntaje de acuerdo a si ya habia
	 * consumido previamente un Hongo Rojo
	 */
	@Override
	public void agarrar() {
		if (nivel.getMario().cantPowerUps() == 0) {
			// ajusta la grafica de mario al tama�o de super mario
			
			nivel.getGrafica().getPanelMario().setPanelSuperMario();
			if(!nivel.getMario().tieneEstrella()){
			nivel.getMario().setIcono(
					nivel.getMario().getSkins().getSpriteSuperMario());

			int rumbo = nivel.getMario().getManejo().getLastKey();

			if (rumbo == KeyEvent.VK_LEFT) {
				nivel.getGrafica().getPanelMario().izquierda();
			} else {
				nivel.getGrafica().getPanelMario().derecha();
			}
			}else{
				setMarioEstrella();
			}

			nivel.getMario().agregarPowerUp(this);
			nivel.getMario().setControlGrande();
			nivel.getScore().modificarPuntaje(10);
		} else if (nivel.getMario().cantPowerUps() == 1) {
			nivel.getScore().modificarPuntaje(50);
		}
		nivel.getDirectorPowerUps().eliminarPowerUp(
				casilleroActual.getCoordenada());

	}
	private void setMarioEstrella(){
		nivel.getGrafica().getPanelMario().setPanelSuperMario();
		nivel.getMario().setIcono(nivel.getMario().getSkins().getSpriteSuperMarioEstrella());
		int rumbo = nivel.getMario().getManejo().getLastKey();

		if (rumbo == KeyEvent.VK_LEFT) {
			nivel.getGrafica().getPanelMario().izquierda();
		} else {
			nivel.getGrafica().getPanelMario().derecha();
		}
	}

}
